var express = require('express');
var router = express.Router();
const jwt = require('jsonwebtoken')
const moment = require('moment');
const AccountModel = require('../../models/AccountModel');
let checkTokenMiddleware = require("../../middlewares/checkTokenMiddleware")

// 记账本列表
router.get('/account', checkTokenMiddleware, function (req, res, next) {
    AccountModel.find().sort({ time: -1 }).exec((err, data) => {
        if (err) {
            // res.status(500).send('读取失败~')
            res.json({
                code: '1001',
                msg: '读取失败',
                data: null
            })
            return
        }
        res.json({
            code: '0000',
            msg: '读取成功',
            data: data
        })
    })
})

// 新增记录
router.post('/account', checkTokenMiddleware, (req, res) => {

    // 插入数据库
    AccountModel.create({
        ...req.body,
        time: moment(req.body.time).toDate()
    }, (err, data) => {
        if (err) {
            res.json({
                code: '1002',
                msg: '创建失败',
                data: null
            })
            return
        }
        res.json({
            code: '0000',
            msg: '创建成功',
            data: data
        })
    })
})

// 删除记录
router.delete('/account/:id', checkTokenMiddleware, (req, res) => {
    // 获取params的id参数
    let id = req.params.id
    // 删除
    AccountModel.deleteOne({ _id: id }, (err, data) => {
        if (err) {
            res.json({
                code: '1003',
                msg: '删除失败',
                data: null
            })
            return
        }
        // 提醒
        res.json({
            code: '0000',
            msg: '删除成功',
            data: {}
        })

    })

})

// 获取单个账单信息
router.get('/account/:id', checkTokenMiddleware, (req, res) => {
    let { id } = req.params
    AccountModel.findById(id, (err, data) => {
        if (err) {
            return res.json({
                code: '1004',
                msg: '读取失败~~',
                data: null
            })
        }
        // 成功响应
        res.json({
            code: '0000',
            msg: '读取成功',
            data: data
        })
    })
})

// 更新单个账单信息
router.patch('/account/:id', checkTokenMiddleware, (req, res) => {
    let { id } = req.params
    AccountModel.updateOne({ _id: id }, req.body, (err, data) => {
        if (err) {
            return res.json({
                code: '1005',
                msg: '更新失败~',
                data: null
            })
        }
        AccountModel.findById(id, (err, data) => {
            if (err) {
                return res.json({
                    code: '1005',
                    msg: '更新失败~',
                    data: null
                })
            }
            res.json({
                code: '0000',
                msg: '更新成功',
                data: data
            })
        })
    })
    // 成功响应

})

module.exports = router;
